home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / raid / md_u.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  3KB  |  118 lines

  1. /*
  2.    md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
  3.           Copyright (C) 1998 Ingo Molnar
  4.       
  5.    This program is free software; you can redistribute it and/or modify
  6.    it under the terms of the GNU General Public License as published by
  7.    the Free Software Foundation; either version 2, or (at your option)
  8.    any later version.
  9.    
  10.    You should have received a copy of the GNU General Public License
  11.    (for example /usr/src/linux/COPYING); if not, write to the Free
  12.    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
  13. */
  14.  
  15. #ifndef _MD_U_H
  16. #define _MD_U_H
  17.  
  18. /* ioctls */
  19.  
  20. /* status */
  21. #define RAID_VERSION        _IOR (MD_MAJOR, 0x10, mdu_version_t)
  22. #define GET_ARRAY_INFO        _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
  23. #define GET_DISK_INFO        _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
  24. #define PRINT_RAID_DEBUG    _IO (MD_MAJOR, 0x13)
  25. #define RAID_AUTORUN        _IO (MD_MAJOR, 0x14)
  26.  
  27. /* configuration */
  28. #define CLEAR_ARRAY        _IO (MD_MAJOR, 0x20)
  29. #define ADD_NEW_DISK        _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
  30. #define HOT_REMOVE_DISK        _IO (MD_MAJOR, 0x22)
  31. #define SET_ARRAY_INFO        _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
  32. #define SET_DISK_INFO        _IO (MD_MAJOR, 0x24)
  33. #define WRITE_RAID_INFO        _IO (MD_MAJOR, 0x25)
  34. #define UNPROTECT_ARRAY        _IO (MD_MAJOR, 0x26)
  35. #define PROTECT_ARRAY        _IO (MD_MAJOR, 0x27)
  36. #define HOT_ADD_DISK        _IO (MD_MAJOR, 0x28)
  37. #define SET_DISK_FAULTY        _IO (MD_MAJOR, 0x29)
  38. #define HOT_GENERATE_ERROR    _IO (MD_MAJOR, 0x2a)
  39.  
  40. /* usage */
  41. #define RUN_ARRAY        _IOW (MD_MAJOR, 0x30, mdu_param_t)
  42. #define START_ARRAY        _IO (MD_MAJOR, 0x31)
  43. #define STOP_ARRAY        _IO (MD_MAJOR, 0x32)
  44. #define STOP_ARRAY_RO        _IO (MD_MAJOR, 0x33)
  45. #define RESTART_ARRAY_RW    _IO (MD_MAJOR, 0x34)
  46.  
  47. typedef struct mdu_version_s {
  48.     int major;
  49.     int minor;
  50.     int patchlevel;
  51. } mdu_version_t;
  52.  
  53. typedef struct mdu_array_info_s {
  54.     /*
  55.      * Generic constant information
  56.      */
  57.     int major_version;
  58.     int minor_version;
  59.     int patch_version;
  60.     int ctime;
  61.     int level;
  62.     int size;
  63.     int nr_disks;
  64.     int raid_disks;
  65.     int md_minor;
  66.     int not_persistent;
  67.  
  68.     /*
  69.      * Generic state information
  70.      */
  71.     int utime;        /*  0 Superblock update time              */
  72.     int state;        /*  1 State bits (clean, ...)              */
  73.     int active_disks;    /*  2 Number of currently active disks          */
  74.     int working_disks;    /*  3 Number of working disks              */
  75.     int failed_disks;    /*  4 Number of failed disks              */
  76.     int spare_disks;    /*  5 Number of spare disks              */
  77.  
  78.     /*
  79.      * Personality information
  80.      */
  81.     int layout;        /*  0 the array's physical layout          */
  82.     int chunk_size;    /*  1 chunk size in bytes              */
  83.  
  84. } mdu_array_info_t;
  85.  
  86. typedef struct mdu_disk_info_s {
  87.     /*
  88.      * configuration/status of one particular disk
  89.      */
  90.     int number;
  91.     int major;
  92.     int minor;
  93.     int raid_disk;
  94.     int state;
  95.  
  96. } mdu_disk_info_t;
  97.  
  98. typedef struct mdu_start_info_s {
  99.     /*
  100.      * configuration/status of one particular disk
  101.      */
  102.     int major;
  103.     int minor;
  104.     int raid_disk;
  105.     int state;
  106.  
  107. } mdu_start_info_t;
  108.  
  109. typedef struct mdu_param_s
  110. {
  111.     int            personality;    /* 1,2,3,4 */
  112.     int            chunk_size;    /* in bytes */
  113.     int            max_fault;    /* unused for now */
  114. } mdu_param_t;
  115.  
  116. #endif 
  117.  
  118.